package loja.model.entity.produto;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = "itens_estoque")
public class ItemEstoque implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue
	private long idEstoque;
	@OneToOne
	private Produto produto;
	@Column(nullable = false)
	@Temporal(TemporalType.DATE)
	private Date validade;
	@Column(nullable = false, precision = 6, scale = 2)
	private double precoVenda = 0;
	@Column(precision = 6, scale = 2)
	private double precoCompra = 0;
	@Column(nullable = false, precision = 4)
	private double quantidade = 1.0;
	private String local;

	public ItemEstoque() {
	}

	public ItemEstoque(Produto produto, Date validade) {
		this.produto = produto;
		this.validade = validade;
	}

	public ItemEstoque(Produto produto, Date validade, double precoVenda,
			double precoCompra, double quantidade, String local) {

		this.produto = produto;
		this.validade = validade;
		this.precoVenda = precoVenda;
		this.precoCompra = precoCompra;
		this.quantidade = quantidade;
		this.local = local;

	}

	public ItemEstoque(long idEstoque, Produto produto, Date validade,
			double precoVenda, double precoCompra, double quantidade,
			String local) {
		this.idEstoque = idEstoque;
		this.produto = produto;
		this.validade = validade;
		this.precoVenda = precoVenda;
		this.precoCompra = precoCompra;
		this.quantidade = quantidade;
		this.local = local;
	}

	public long getIdEstoque() {
		return idEstoque;
	}

	public void setIdEstoque(long idEstoque) {
		this.idEstoque = idEstoque;
	}

	public Produto getProduto() {
		return produto;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	public Date getValidade() {
		return validade;
	}

	public void setValidade(Date validade) {
		this.validade = validade;
	}

	public double getPrecoVenda() {
		return precoVenda;
	}

	public void setPrecoVenda(double precoVenda) {
		this.precoVenda = precoVenda;
	}

	public double getPrecoCompra() {
		return precoCompra;
	}

	public void setPrecoCompra(double precoCompra) {
		this.precoCompra = precoCompra;
	}

	public double getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(double quantidade) {
		this.quantidade = quantidade;
	}

	public String getLocal() {
		return local;
	}

	public void setLocal(String local) {
		this.local = local;
	}

}
